package com.atues.candy;

public class Solution {

    public int candyyy(int[] ratings){
        //对于递增的情况，那么肯定值是越来越大的，如果突然有个比之前的值小的话，那么就可以置为1了，但如果从这个数字开始后面的数字右边线面小；
        //123 2 1 ,2为1的话，那么1就取不了值，所以这时候可以从右边开始
        //所以可以声明两个数组，分别符合左边规则和右边规则,解决就取大值，因为大值可以符合两边情况
        int n = ratings.length;
        int[] left = new int[n];
        int[] right = new int[n];
        int res = 0;
        for(int i = 0; i < n; i++){
            left[i] = 1;
            right[i] = 1;
        }
        for(int i = 1;  i < n ;i++)
            if(ratings[i] > ratings[i-1])
                left[i] = left[i-1] + 1;
        res+=left[n-1];
        for(int i = n -2 ; i >= 0 ; i--)
        {
            if(ratings[i] > ratings[i+1])
                right[i] = right[i+1] + 1;
            res += Math.max(left[i],right[i]);
        }

        return res;

    }

}
